class Person:
  # 初始化 name,gender,age 属性
  # 自带方法，每次实例化对象之后，自动调用
  def __init__(self, name, gender, age):
    self.name = name
    self.gender = gender
    # 不是私有属性，在外部容易被修改
    # self.age = age
    # 设置为私有属性，外部只能根据指定方法进行修改属性值
    self.__age = age

  # 定义实例对象的描述
  # 自带方法，有一个返回值，每次print()对象时，如果定义了__str__方法，会自定义调用改方法
  def __str__(self):
    # 属性变为私有属性，其他地方也要做对应处理
    # str = '我的名字是 %s，性别是 %s，年龄是 %d。' % (self.name, self.gender, self.age)
    str = '我的名字是 %s，性别是 %s，年龄是 %d。' % (self.name, self.gender, self.__age)
    return str

  # 定义说话动作
  def speak(self):
    print("%s正在说话" % self.name)

  # 定义走路动作
  def walk(self):
    print("%s正在走路" % self.name)

  # 获取age属性
  def getAge(self):
    # 属性变为私有属性，其他地方也要做对应处理
    # return self.age
    return self.__age

  # 修改age属性
  def setAge(self, age):
    if(age > 0):
      # 属性变为私有属性，其他地方也要做对应处理
      # self.age = age
      self.__age = age